安装OSX
- 从OSX制作启动U盘: http://www.iplaysoft.com/osx-yosemite-usb-install-drive.html
- 从WIN制作启动U盘: http://www.cnblogs.com/maybego/p/3266528.html
快捷键
Command + Option + Esc
: 相当于Windows上的 Ctrl + Alt + Del,或者点击左上角图标-强制退出
开发工具 & 常用软件
常用软件(DMG安装文件)
- Shadowsocks: https://github.com/shadowsocks/shadowsocks-iOS/wiki/Shadowsocks-for-OSX-Help
- Google Chrome: https://www.google.com/intl/zh-CN/chrome/
- Dropbox: https://www.dropbox.com/zh_CN/install
- 1Password: https://1password.com/zh-cn/downloads/mac/
英雄留步
关于Xcode, 不做iOS开发也要安装, Xcode作用相当于Windows上的.NET Framework, 直接在App Store上安装即可, 下载时间很长, 可以先睡一会, 醒来就装好了.
安装完Xcode后, 命令行执行:
xcode-select --install # 安装 Command Line Tools |
Homebrew & cask
- Homebrew 官网: http://brew.sh/ , 安装方式:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
- Homebrew-cask 官网: https://caskroom.github.io/ , 安装方式:
brew tap caskroom/cask |
brew 和 brew cask 的区别:
- brew 是从下载源码解压然后
./configure && make install
, brew主要用来安装不带UI的命令行或者库, brew安装的程序包在/usr/local/Cellar/
, 可执行文件链接到/usr/local/bin/
- brew cask 是安装已经编译好了的应用包, brew cask主要用来下载一些带界面的应用软件, 安装目录默认在
/usr/local/Caskroom/
安装了 Homebrew 和 Homebrew-cask 之后就可以用brew install
和brew cask install
命令安装其他程序,
brew 命令参考: https://docs.brew.sh/Manpage
替换为国内镜像
替换为 USTC 镜像:
cd "$(brew --repo)"/Library/Taps/caskroom/homebrew-cask |
重置为官方地址:
cd "$(brew --repo)"/Library/Taps/caskroom/homebrew-cask |
Homebrew常用命令
brew install xxx # 按名称安装 |
Homebrew-Cask常用命令
注: 不再支持 brew cask xx命令, 改为: brew xx --cask |
安装统计
在Homebrew Analytics Install Events — Homebrew可以看到被安装的app排名
使用命令brew analytics off
来退出 Homebrew 的分析。
Zsh 和终端替代品iTerm2
Zsh:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
终端替代品iTerm2:
brew cask install iterm2
Zsh插件
brew install autojump zsh-syntax-highlighting zsh-autosuggestions
并在~/.zshrc下增加:[ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh`
补充, 如果使用了Oh-my-zsh就不用上面这么麻烦了, 直接在~/.zshrc里这样enable插件:
plugins=(git autojump osx mvn gradle zsh-syntax-highlighting zsh-autosuggestions)
编辑器(Vim & Sublime)
- MacVim:
brew cask install macvim
- Sublime text:
brew cask install sublime-text
java环境
brew tap caskroom/versions |
或者直接在Oracle官网下载, 并在.bashrc(如果你用的zsh,则是.zshrc)添加$JAVA_HOME
环境变量:export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
Mac上Java的安装目录
在终端输入which java
, 返回的是: “/usr/bin/java” ,
/usr/bin/java 是个链接, 指向: “/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java” ,
但是我输入echo $JAVA_HOME
, 返回”/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home” ,
那么 /System/Library/Frameworks/JavaVM.framework/ 和 /Library/Java/JavaVirtualMachines 哪个才是真正的Java安装目录?
答案是后者, 我发现 “/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/“ 下所有的可执行文件大小都是完全相同的,
该目录中的二进制文件是确定要使用哪个Java VM的存根应用程序, 可以使用dtrace
查看java -version
命令调用的全过程:
sudo dtrace -n 'syscall::posix_spawn:entry { trace(copyinstr(arg1)); }' -c "/usr/bin/java -version" |
多版本Java共存
管理多版本Java的工具: jEnv
安装 & 配置:
安装 jenv |
添加 jdk:
jenv add 会在 ~/.jenv/versions 下建立对应 jdk的软链 |
How to Use:
列出所有的 jdk |
jenv 在我的MBP上一直有问题,
jenv global
无效, 港真我还是觉得自己手动修改$JAVA_HOME
的方式比较好
python环境
brew install python ## will install python & pip |
由于 macOS 10.13已经预安装了Python 2.7.10, 上面的命令会安装Python3 到/usr/local/Cellar/python/Version
并在/usr/local/bin/
创建链接:
python3, pip3, easy_install-3.6
对于用系统默认easy_install安装的包, 会放在/Library/Python/2.7/site-packages
, 所以需要sudo:sudo easy_install tornado
如果不喜欢sudo, 则可以用pip仅在当前用户下安装, 尤其对于需要升级系统自带的package时:pip install --user --upgrade matplotlib
easy_install和pip
两者都是 setuptools 基础上的工具,pip 比 easy_install 提供更多高级选项, 比如uninstall, freeze
php环境
brew tap homebrew/php |
Add PATH:
export PATH="$(brew --prefix homebrew/php/php70)/bin:$PATH" |
node环境
brew install node ## will install node & npm |
其他工具
- 常用开发套件:
brew install ctags cscope wget watch tmux cmake openssl geoip automake autoconf
- 虚拟机:
brew cask install virtualbox
- 压缩工具:
brew cask install the-unarchiver
公钥
- 生成ssh key
ssh-keygen -t rsa -C "邮箱"
- 添加到系统:
ssh-add ~/.ssh/你的公钥
cURL
macOS 中 Curl 的版本针对 SSL/TLS 验证使用安全传输。
如果你更愿意使用 OpenSSL,用 brew install curl --with-openssl
安装并通过 brew link --force curl
确保它是默认的。
JupyterLab
需要python3、pip3
安装:pip install jupyterlab
pip install notebook
启动:jupyter lab # 或
jupyter notebook
入门:
https://www.dataquest.io/blog/jupyter-notebook-tutorial/
系统设置
Launchpad
重置 Launchpad 图标数据库:在 Terminal 中键入defaults write com.apple.dock ResetLaunchPad -bool true && killall Dock
配置文件位置:~/Library/Application\ Support/Dock/desktoppicture.db
Menu Bar
Dock
重置Dockdefaults delete com.apple.dock; killall Dock
Notification Center
@TODO
Finder
@TODO
Spotlight
@TODO
WIFI
重启airportd:
#/bin/bash |
DNS 缓存
如何清理DNS缓存:
如果操作系统是Lion、Mountain Lion和Mavericks+:sudo killall -HUP mDNSResponder
如果操作系统是Leopard和Snow Leopard:sudo dscacheutil -flushcache
定时任务(launchd)
launchctl 是一个统一的服务管理框架,可以启动、停止和管理进程、应用程序、脚本等。
参考: Creating Launch Daemons and Agents
- 创建可执行脚本 task.sh
- 在 ~/Library/LaunchAgents 目录下创建 plist文件:
touch ~/Library/LaunchAgents/com.myMac.cron.task.plist
编辑 plist 文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- 唯一plist名字 -->
<key>Label</key>
<string>com.myMac.cron.task</string>
<!-- 可执行命令, 第一个为命令,其它为参数 -->
<key>ProgramArguments</key>
<array>
<string>/Users/xxx/Scripts/task.sh</string>
</array>
<!-- 定时执行 这里的例子每天22点 -->
<key>StartCalendarInterval</key>
<dict>
<key>Minute</key>
<integer>0</integer>
<key>Hour</key>
<integer>22</integer>
<key>Weekday</key>
<integer>0</integer>
</dict>
<!-- 标准输出和错误输出 -->
<key>StandardOutPath</key>
<string>/tmp/cron-task.log</string>
<key>StandardErrorPath</key>
<string>/tmp/cron-task.log</string>
</dict>
</plist>加载到系统:
launchctl load com.myMac.cron.task.plist
;- 如果查看所有载入的:
launchctl list
; - 如果需要移除:
launchctl unload com.myMac.cron.task.plist
; StartCalendarInterval
项的解释:<key>Hour</key>
: Hour of the day (0-24).<key>Weekday</key>
: Weekday is the day of the week (0 and 7 == Sunday).<key>Day</key>
: Day is the day of the month.
Safari
推荐扩展:
- AdBlock: 拦截广告
- webQR: 当前的地址转换为二维码
- Tab Lister: Chrome上的 OneTab, 可以将打开的标签页收纳到一个标签页, 关闭所有标签页节省资源
- sVim: 为Safari增加Vim的快捷键 链接
- AutoPagerize: 自动再入”下一页” 链接
- Reverse Image Search : 图片上右键搜索相似图 链接
macOS Mojave(10.14)
开启子像素抗锯齿
升级 macOS Mojave 新系统后,苹果默认关闭了子像素抗锯齿(也称为字体平滑),导致字体变细锯齿增多。在连接到非Retina显示屏的MacBook Air或桌面Mac上,升级会使您的字体看起来更糟。
如果您的Mac带有Retina显示屏,我们不建议启用亚像素抗锯齿功能。 即使没有亚像素抗锯齿,字体在Retina显示屏上看起来也应该看起来不错且可读。 但是,如果您有非Retina显示屏,我们建议您重新启用此功能。
像素抗锯齿是一种技巧,旨在使字体在较低分辨率的显示器上看起来更好。 如果默认情况下未启用此功能,则macOS Mojave会使非Retina显示屏上的文本看起来更薄更模糊。
虽然默认情况下禁用子像素字体平滑,但您可以使用terminal命令重新启用它。 有四种可能的设置:0(禁用),1(光平滑),2(中等平滑)和3(重平滑)。
打开 【终端】应用,输入下面命令,全局启用 次像素抗锯齿 渲染: defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO
设置字体 次像素抗锯齿 级别 (类似 Linux 的 hintstyle 微调样式) 的命令: defaults -currentHost write -globalDomain AppleFontSmoothing -int 3
查看设置后的选项值:
$ defaults read -g CGFontRenderingFontSmoothingDisabled |
参考: macOS Mojave 字体渲染由默认的灰度抗锯齿改回之前的次像素抗锯齿
macOS Catalina(10.15)
升级到 10.15后要做的:
xcode-select --install
sudo xcodebuild -license accept
brew update && brew upgrade
- type
reload
into Alfred to refresh the application cache
APFS 文件系统下, macOS的系统路径有了一些变化, 可能对使用者造成困扰:
更新 macOS 10.15 你需要知道的APFS 磁盘格式的变化 - 系统分区独立加密 - 知乎
附录
OSX系统目录
- 当前用户的软件数据目录:
~/Library/Application\ Support
- 系统的软件数据目录:
/Library/Application\ Support
- iCloud云盘在本地的路径:
~/Library/Mobile\ Documents/com~apple~CloudDocs
- 一些 App 在 iCloud中的文档路径:
- Surge:
~/Library/Mobile\ Documents/iCloud~run~surge/Documents
- MWeb:
~/Library/Mobile\ Documents/iCloud~com~coderforart~iOS~MWeb/Documents
- 自带TextEdit:
~/Library/Mobile\ Documents/com~apple~TextEdit/Documents
- 自带Knote:
~/Library/Mobile\ Documents/com~apple~Keynote/Documents
- 自带Page:
~/Library/Mobile\ Documents/com~apple~Pages/Documents
- Surge:
自启动程序目录
- ~/Library/LaunchAgents
- /Library/LaunchAgents/
- /Library/LaunchDaemons/
- /Library/StartupItems/